package main

import (
	config2 "gitee.com/enzolwb/my-chitchat/config"
	. "gitee.com/enzolwb/my-chitchat/routes"
	"log"
	"net/http"
)

func main() {
	startWebServer("8080")
}

// 通过指定端口启动 Web 服务器
func startWebServer(port string) {
	config := config2.LoadConfig()
	r := NewRouter()
	// 处理静态资源文件
	assets := http.FileServer(http.Dir(config.App.Static))
	//指定静态资源路由及处理逻辑：将 /static/ 前缀的 URL 请求去除 static 前缀，然后在文件服务器查找指定文件路径是否存在（public 目录下的相对地址）
	r.PathPrefix("/static/").Handler(http.StripPrefix("/static/", assets))

	http.Handle("/", r) // 通过 router.go 中定义的路由器来分发请求

	log.Println("Starting HTTP service at " + config.App.Address)
	err := http.ListenAndServe(config.App.Address, nil) // 启动协程监听请求

	if err != nil {
		log.Println("An error occured starting HTTP listener at port " + config.App.Address)
		log.Println("Error: " + err.Error())
	}
}
